﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using CancioneroCONFAD.DAL;
using CancioneroCONFAD.Utilidades;

namespace CancioneroCONFAD.Formularios
{
    public partial class GenerarLista : Form
    {
        private readonly List<Cancion> CancionesGuardar=new List<Cancion>();
        public GenerarLista(List<Cancion> canciones)
        {
            CancionesGuardar = canciones;
            InitializeComponent();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {

                folderBrowserDialog1.ShowDialog();
                var path = folderBrowserDialog1.SelectedPath;
                //var largo = path.Length;
                lblRuta.Text = path.Length > 17
                                   ? path.Substring(0, 7) + "..." + path.Substring((path.Length - 10), 10)
                                   : path;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error:\n" + ex.Message, "Oops lo sentimos", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnGenerar_Click(object sender, EventArgs e)
        {
            try
            {

                var nombre = "Canciones." + DateTime.Now.ToString("dd.MMM.yy.hh.mm") + ".ppt";
                var path = "c:\\";
                if (!string.IsNullOrEmpty(folderBrowserDialog1.SelectedPath))
                {
                    path = folderBrowserDialog1.SelectedPath;
                }
                if(!string.IsNullOrEmpty(txtNombre.Text))
                {
                    nombre = txtNombre.Text + ".ppt";
                }
                var presentacion = new PPTGenerator();
                presentacion.CreateFile(path + "\\" + nombre, CancionesGuardar);
                MessageBox.Show("La presentación se ha generado\n" + path + "\\" + nombre, "Información",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error:\n" + ex.Message, "Oops lo sentimos", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }

        private void GenerarLista_Load(object sender, EventArgs e)
        {
            try
            {
                foreach(var cancion in CancionesGuardar)
                {
                    lstCanciones.Items.Add(cancion.Titulo);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error:\n" + ex.Message, "Oops lo sentimos", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
    }
}
